package com.sunflower.common.mybatis.core.service;

import com.baomidou.mybatisplus.core.toolkit.support.SFunction;
import com.sunflower.common.mybatis.core.page.PageQuery;
import com.sunflower.common.mybatis.core.page.TableDataInfo;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

/**
 * @author: SunLuQuan
 * @Date: 2024年03月24日 18:19
 * @Description: IBoService
 * TODO
 */
public interface IBoService<T, V, B> extends IService<T> {

    public V queryById(Serializable id);

    public TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery, SFunction<T, ?>... columns);

    public TableDataInfo<V> queryPageList(B bo, PageQuery pageQuery, boolean sort, SFunction<T, ?>... columns);


    public List<V> queryList(B bo);

    public Boolean insertByBo(B bo);

    public Boolean updateByBo(B bo);

    public Boolean deleteWithValidByIds(Collection<Serializable> ids);

}
